package servlet;


import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.lang.reflect.Method;

/**
 * 整合了公用的代码
 */
public class BaseServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //    判断该次请求的行为
        String requestURI = req.getRequestURI();//获得请求地址url
        String[] split = requestURI.split("/");// 以"/"为分隔符将url分为几个字段放到数组里
        String methodName = split[split.length - 1];//获得数组最后一位数据，即为本次请求的行为
        System.out.println(methodName);

        // 通过反射获取要执行的方法
        Class clazz = this.getClass();
        try {
            Method method=clazz.getDeclaredMethod(methodName,HttpServletRequest.class,HttpServletResponse.class);
            // 设置方法可以访问
            method.setAccessible(true);
            // 通过反射执行代码
            method.invoke(this,req,resp);
        } catch (Exception e) {
            e.printStackTrace();
        }

        //        if(methodName.equals("findAll")){
////          显示所有书籍
//            findAll(req,resp);
//        } else if (methodName.equals("find")) {
////          查找所有书籍
//            find(req,resp);
//        }else if (methodName.equals("add")) {
////          增加所有书籍
//            add(req,resp);
//        }else if (methodName.equals("update")) {
////          修改所有书籍
//            update(req,resp);
//        }else if (methodName.equals("remove")) {
////          删除所有书籍
//            remove(req,resp);
//        }else {
//            System.out.println("对不起做不到");
//        }
    }
}
